package com.etc.controller;


import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.xml.ws.http.HTTPException;
import java.io.IOException;
import java.util.Random;

@Controller
@RequestMapping("/duanxin")
public class Duanxin {
    Logger logger = Logger.getLogger(Duanxin.class);

    /**
     * 腾讯云短信,100条一个月 方法说明
     *
     * @param phone
     * @param "type"        短信类型，0 为普通短信，1 营销短信,需要和刚才页面上提交的短信正文下的类型一致
     * @param "nationCode"  国家码，如 86 为中国
     * @param "phoneNumber" 不带国家码的手机号
     * @param "msg"         信息内容，必须与申请的模板格式一致，否则将返回错误，{1}占位符可在代码中用实际需要发送的值替换
     * @param "extend"      扩展码，可填空
     * @param "ext"         服务端原样返回的参数，可填空
     * @return void
     * @throws HTTPException http status exception
     * @throws IOException   network problem
     * @Discription:扩展说明
     */
    @RequestMapping("/sendsms")
    public static String sendMsgByTxPlatform(@RequestParam(value = "phone", defaultValue = "15804960783") String phone,
                                             @RequestParam(value = "count", defaultValue = "1") String count,
                                             @RequestParam(value = "smss", defaultValue = "ssss") String smss) throws Exception {


        //单个号码
        //String phone="111111111111";

        // 短信应用SDK AppID 在"应用管理"--"应用列表"
        // 1400开头
        int appId = 1400417719;

        // 短信应用SDK AppKey   在"应用管理"--"应用列表"
        String appKey = "40698b646da46213ee36046d39bbf85f";

        // 需要发送短信的手机号码 多个手机号码用","分割
        /*String[] phoneNumbers = {"18551812290"};*/
        String[] phoneNumbers = {phone};

        // 正文模板管理ID，需要在短信应用中申请
        // NOTE: 这里的模板ID`681106`只是一个示例，真实的模板ID需要在-"正文模板管理"-中选择你要用的
        int templateId = 700021;

        // 签名
        // NOTE: 这里的签名"李颖君个人公众号"只是一个示例，真实的签名需要在-"签名管理"-中选择`签名内容`，而不是`签名ID`
        String smsSign = "单调符号";

        // 验证码
        String str = "";
        // 随机生成6位的验证码
        Random random = new Random();
        for (int i = 0; i < 6; i++) {
            str += random.nextInt(10);
        }
        //params 是装相对应短信中需要的值，str是随机验证码。例子：您正在申请手机注册，验证码为：{1}，{2}分钟内有效！{ str ,2} 则表示str验证码，2分钟内。
        String[] params = {smss, count, smss};

        SmsSingleSender sSender = new SmsSingleSender(appId, appKey);
        //
        SmsSingleSenderResult result = sSender.sendWithParam("86", phone, templateId, params, smsSign, "", "");

        //System.err.println(result.result);

        if (result.result != 0) {
            throw new Exception("send phone validateCode is error" + result.errMsg);
        }
        return "front/orderList";
    }

}